package cn.wolfcode.luowowo.article.service;

import cn.wolfcode.luowowo.article.domain.Answer;
import cn.wolfcode.luowowo.article.domain.AnswerContent;
import cn.wolfcode.luowowo.article.query.AnswerQuery;
import cn.wolfcode.luowowo.article.vo.AnswerSatisSortVo;

import java.util.List;

/**
 * @author 名字
 * @company 公司
 * @create 2019-09-26 9:43
 */
public interface IAnswerService {
    /**
     * 查询该提问下的回复被顶的第一名
     * @param qid
     * @return
     */
    Answer getTop1(Long qid);

    /**
     * 获取回答的内容
     * @param id
     * @return
     */
    AnswerContent getContent(Long id);

    /**
     * 添加/修改
     * @param Answer
     */
    void saveOrUpdate(Answer Answer);

    /**
     * 根据提问查出所有回答
     * @param id
     * @return
     */
    List<Answer> queryByQId(Long id);

    /**
     * 查询单个
     * @param id
     * @return
     */
    Answer get(Long id);

    /**
     * 根据用户id查询出用户的回答数
     * @param uId
     * @return
     */
    Long getAnswerNumByUId(Long uId);

    /**
     * 根据用户id查询出用户的回答的金牌数量
     * @param uId
     * @return
     */
    Long getGoldNumByUId(Long uId);

    /**
     * 根据条件统计出不同的排行
     * @param answerQuery
     * @return
     */
    List<AnswerSatisSortVo> querySort(AnswerQuery answerQuery);

    /**
     * 修改顶的次数
     * @param aid
     */
    void updateThump(Long aid);
}
